﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Calcylator2
{
    class Calcul
    {
        public static void Counter(List<object> lis, int t)
        {
            int j = t;

            for (int k = t; k < lis.Count; k++)
            {
                if (lis[k].ToString() == "(")
                {
                    Counter(lis, k + 1);
                    lis.RemoveAt(k);
                    lis.RemoveAt(k + 1);
                   
                }
            }
            double rezalt;
            while (j < lis.Count)
            {

                if (lis[j].ToString() == ")")
                {
                    break;
                }
                if (lis.Count <= 2)
                {
                    if (lis[j].ToString() == "/" || lis[j].ToString() == "*")
                    {
                        lis.RemoveAt(j);
                        j--;
                    }
                }
                if (lis[j].ToString() == "*")
                {
                    rezalt = ((double)lis[j - 1]) * ((double)lis[j + 1]);
                    lis[j - 1] = rezalt;
                    lis.RemoveRange(j, 2);
                    rezalt = 0;
                    j--;
                }
                if (lis[j].ToString() == "/")
                {
                    rezalt = ((double)lis[j - 1]) / ((double)lis[j + 1]);
                    lis[j - 1] = rezalt;
                    lis.RemoveRange(j, 2);
                    rezalt = 0;
                    j--;
                }
                j++;
            }
            for (int i = t; i < lis.Count; i++)
            {
                if (lis[i].ToString() == ")")
                {
                    return;
                }
                if (lis.Count <= 2)
                {
                    if (lis[i].ToString() == "+" || lis[i].ToString() == "-")
                    {
                        lis.RemoveAt(i);
                        Console.WriteLine("Последний символ");
                        i--;
                    }
                }
                if (lis[i].ToString() == "+")
                {
                    rezalt = ((double)lis[i - 1]) + ((double)lis[i + 1]);
                    lis[i - 1] = rezalt;
                    lis.RemoveRange(i, 2);
                    rezalt = 0;
                    i--;
                }
                else if (lis[i].ToString() == "-")
                {
                    rezalt = ((double)lis[i - 1]) - ((double)lis[i + 1]);
                    lis[i - 1] = rezalt;
                    lis.RemoveRange(i, 2);
                    rezalt = 0;
                    i--;
                }
            }
        }
    }
}
